
#Texdi

##Introducción
Este manual documenta como usar además de las ventajas e incompatibilidades del conversor Texdi.
Es recomendable leer antes la referencia del lenguaje porque ayuda a comprender mejor este documento.

##Lenguajes de etiquetado soportados

Texdi es un acrónimo entre texto y tedi. Esto significa que este programa pretende dar soporte a todos los lenguajes de etiquetado posibles. Se han buscado de cada tipo un representante mayoritario. 
Los conversores se hacen de manera independiente en bibliotecas cómodas. Sus nombres en el código surgen de la forma tedi2LENG donde LENG es el lenguaje al que se convierte. 
__
-- HTML: tedi2html
-- Latex: tedi2tex
-- Asciidoc: tedi2ad
-- Markdown: tedi2md
,,

##Parámetros de consola

Texdi solo permite parámetros que cambien la interacción del usuario. Un parámetro no modifica el proceso de conversión. Normalmente sirven para definir valores por defecto por comodidad del usuario. Abajo se muestra una lista con una descripción de lo que realiza cada opción. 
<--latex
Convierte el documento a latex sin autor. 
<--html
Convierte el documento a HTML. Los estilos son predeterminados. 
<--asciidoc
Convierte el documento a AsciiDoc. 
<--markdown
Convierte el documento a Markdown. 
<--output ARCHIVO
<-o ARCHIVO
Permite elegir el nombre del archivo de salida de la conversión. 
<--own-styles
Añade un enlace a styles.css, permite usar estilos propios en el documento HTML. 
<--help
Muestra una lista con todas las opciones anteriores. 

##Implementación referencia

Este programa supone la implementación referencia de Tedi, ya que no hay otra. La referencia de Tedi no aporta gran cantidad de información sobre la manera más correcta de implementar un conversión de Tedi a otro lenguaje. De ahí que sea tan importante la implementación referencia. Las bibliotecas que conforman Texdi son muy parecidas pero no son iguales. La biblioteca referencia de Tedi es tedi2html. 

tedi2html cumple un orden secuencial que acaba generando una jerarquía. Antes de toda conversión, el paso de prepocesado se encarga de cargar los documentos que aparecen en el documento cumpliendo así la etiqueta inserta.

##Etiquetas de control
Solo las tres primeras etiquetas de control (Comentarios, metaetiqueta y código incrustado)
se encuentran en el apartado de control de la librería tedi2html. Esto se debe a que estas cuatro etiquetas coinciden en el primer carácter '<'.
Al estar pensadas para la primera posición, son fáciles de detectar y no hace es necesario un algoritmo muy complejo.

###Comentarios

La primera etiqueta que se comprueba en el código es el comentario. La línea no pasará al documento de salida pero permite documentar el texto.

###Código incrustado

La implementación al detectar esta etiqueta, elimina la etiqueta y mantiene la línea sin modificar. Tal cual expresa la referencia debe permitir que el lenguaje al que se convierte detecta esa línea como etiquetas del propio lenguaje.

###Metaetiqueta

Esta etiqueta difiere de la referencia.
"La mayoría de lenguajes de etiqueta tiene una etiqueta conocida como "verbose"."
Esto es significativo en la implementación de Latex más que en HTML.

##Título

Hay límites de nivel de títulos. Cada almohadilla en el título expresa un nivel. Los títulos abarcan del nivel 1 hasta nivel 6. Si el usuario introduce un título de más de 6 niveles, mantendrá nivel 6.

##Listas

Hay tres comprobaciones por cada etiqueta propia de la lista (comienzo, elemento y fin).
En HTML permite etiquetas dentro de etiquetas pero en otros lenguajes no funcionan de la manera correcta y pueden dar incompatibilidades. Por ahora, se permite el uso de listas anidadas, a pesar de su posible incompatibilidad (todavía no se ha encontrado).

##Comillas

Otra etiqueta de control que determina si se convierten los enlaces, las imágenes y los contenedores. Si una apertura de comillas en el primer carácter de la línea y otra de finalización en el último carácter, no se convertirán las etiquetas anteriores.

##Contenedores

Los contenedores tienen el mismo comportamiento de un div de HTML. Entonces su conversión es casi equivalente pero con la sintaxis de HTML.

Un contenedor es una parte de texto (que puede incluir etiquetas) que se separa del resto de texto. Es muy útil para subdividir regiones del texto completo. 

##Imágenes

Las imágenes tienen el mismo comportamiento de un img de HTML. Entonces su conversión es casi equivalente pero con la sintaxis de HTML.

##Enlaces

Los enlaces tienen el mismo comportamiento de un link de HTML. Entonces su conversión es casi equivalente pero con la sintaxis de HTML pero muy simplificada.

##Tablas

La última conversión que hace el código es transformar las tablas de tedi a tablas del propio lenguaje. Esta parte es la única del código que necesita conocer de las líneas anteriores para funcionar correctamente ya que una línea de tabla condiciona la siguiente.

##Consideraciones

Las recomendaciones de estilo se mantienen para esta implementación y es recomendable que la recomendación sobre nivel de títulos se mantenga. 


